home *** CD-ROM | disk | FTP | other *** search
/ Aminet 31 / Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso / Opus5.5 / ARexx.lha / ARexx / Commander.dopus5 < prev    next >
Text File  |  1996-06-13  |  3KB  |  92 lines

  1. /* Commander for Directory Opus 5.5
  2.    by Leo 'Nudel' Davidson for Gods'Gift Utilities
  3.    email: leo.davidson@keble.oxford.ac.uk  www: http://users.ox.ac.uk/~kebl0364
  4.  
  5. $VER: Commander.dopus5 1.1 (13.6.96)
  6.  
  7. This script will open a window and will send the given string to the DOpus5
  8. ARexx port. It's like the "Execute command..." menu item but for ARexx
  9. commands.
  10.  
  11. It will remember the previous command you used and you can set a default
  12. command to be given the first time the script is used after a reboot
  13. (it'd be easy to make it remember after reset if anyone wanted it).
  14.  
  15. Will return the result of the command if there is one.
  16.  
  17. TO DO: Substitue for $SOURCE and $DEST on the command. Perhaps when/if I
  18.        convert it to Assembler for DOpusFuncs.
  19.      - Doesn't like single-quotes (') in the command string. Pain to fix.
  20.      - Doesn't like double ones much either which is a little restricting...
  21.      > Well, as it is this is a little half-baked. Sorry, I have no plans
  22.        to fix all of this because I've got something better now.
  23.  
  24. Call as:
  25. ------------------------------------------------------------------------------
  26. ARexx    DOpus5:ARexx/Commander.dopus5 {Qp} [<default command>]
  27. ------------------------------------------------------------------------------
  28. Turn off all switches.
  29.  
  30. */
  31. options results
  32. options failat 99
  33. signal on syntax;signal on ioerr        /* Error trapping */
  34. parse arg DOpusPort def_cmd
  35. DOpusPort = Strip(DOpusPort,"B",'" ')
  36. def_cmd = Strip(def_cmd,"B",'" ')
  37.  
  38. If DOpusPort="" THEN Do
  39.     Say "Not correctly called from Directory Opus 5!"
  40.     Say "Load this ARexx script into an editor for more info."
  41.     EXIT
  42.     END
  43. If ~Show("P",DOpusPort) Then Do
  44.     Say DOpusPort "is not a valid port."
  45.     EXIT
  46.     End
  47. Address value DOpusPort
  48.  
  49. dopus version
  50. If ( result='RESULT' | translate(result,'.',' ') < 5.1218 ) then do
  51.     dopus request '"This script requires DOpus v5.5 or greater." OK'
  52.     EXIT
  53.     end
  54.  
  55. EnvName = "Env:Commander_DOpus5"
  56.  
  57. If Exists(EnvName) Then Do
  58.     If Open(EnvDef,EnvName,"R") Then Do
  59.         def_cmd = ReadLn(EnvDef)
  60.         Close(EnvDef)
  61.         End
  62.     End
  63.  
  64. dopus getstring "'Enter DOpus5 ARexx command' 256 '" || def_cmd || "' Okay|Cancel"
  65. If DOPUSRC = 0 Then
  66.     Exit
  67.  
  68. new_cmd = RESULT
  69.  
  70. If new_cmd = "" Then
  71.     Exit
  72.  
  73. If Open(EnvDef,EnvName,"W") Then Do
  74.     WriteLn(EnvDef,new_cmd)
  75.     Close(EnvDef)
  76.     End
  77.  
  78. new_cmd
  79.  
  80. IF RC ~=0 Then Do
  81.     dopus error RC
  82.     dopus request "'Error:" RESULT || "' Okay"
  83.     End
  84. Else Do
  85.     If RESULT ~="RESULT" Then
  86.         dopus request "'Result of command:" || X2C(0A) || RESULT || "' Okay"
  87.         End
  88.     End
  89.  
  90. syntax:;ioerr:                /* In case of error, jump here */
  91. EXIT
  92.